package com.heima.wemedia.listen;

import com.heima.common.constants.message.NewsAutoScanConstants;
import com.heima.wemedia.service.WmNewsAutoScanService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.annotation.Queue;
import org.springframework.amqp.rabbit.annotation.QueueBinding;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

/**
 * @author mrchen
 * @date 2022/7/7 16:25
 */
@Component
@Slf4j
public class WemediaNewsAutoListener {
    @Autowired
    private WmNewsAutoScanService wmNewsAutoScanService;

    /**
     * queues =  监听指定队列，  但是不会自动创建队列
     *
     * queuesToDeclare =  监听指定队列， 如果队列不存在  会自动创建
     *
     * bindings = 监听指定队列， 并且如果队列不存在  会自动创建 ，还会自动创建对应的交换机，和 路由key
     * @param newsId
     */
    @RabbitListener(queuesToDeclare = @Queue(NewsAutoScanConstants.WM_NEWS_AUTO_SCAN_QUEUE))
    // 消息序列化使用json序列化，如果只发一个integer的值，在接收时需要使用字符串
    public void handleAutoScanMsg(String newsId){
        log.info("接收到自动审核消息   监听队列: {}   消息id: {}",NewsAutoScanConstants.WM_NEWS_AUTO_SCAN_QUEUE,newsId);
        wmNewsAutoScanService.autoScanWmNews(Integer.valueOf(newsId));
    }
}
